/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.unicon.autoservicio.view.bean;

import com.unicon.autoservicio.dao.CreditosDAO;
import com.unicon.autoservicio.util.FacesUtils;
import com.unicon.sdc.ds.ws.EstadoCuentaBean;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.PhaseId;

/**
 *
 * @author jcabrera
 */
public class ConsultaEstadoDeCuentaBean extends BaseManageBean {

    private List<EstadoCuentaBean> lista;
    private Double totalImporteOriginalSoles;
    private Double totalImporteOriginalDolares;
    private Double totalDeudaPendienteSoles;
    private Double totalDeudaPendienteDolares;
    private Double totalDeudaVencidaSoles;
    private Double totalDeudaVencidaDolares;
    private String tipoMoneda;
    private String mensajeEstadoDeCuenta;

    public ConsultaEstadoDeCuentaBean() {
        tipoMoneda="A";
      
        mensajeEstadoDeCuenta="";
    }

    public String getExportarEstadoCuenta() {
        FacesContext fc = FacesContext.getCurrentInstance();
        UsuarioBean usuarioBean = getSessionUser();
        return fc.getExternalContext().getRequestContextPath() + "/ExportarPDF?reporte=ExportarReporteEstadoDeCuenta&codigoCliente=" + usuarioBean.getCodigoCliente() + "&codigoObra=" + getSelectedObra();
    }

    public boolean btnBuscarActionPerformed(ActionEvent event) {
        lista = null;

        if (!event.getPhaseId().equals(PhaseId.INVOKE_APPLICATION)) {
            event.setPhaseId(PhaseId.INVOKE_APPLICATION);
            event.queue();
            return true;
        }
        CreditosDAO creditosDao = new CreditosDAO();
        UsuarioBean usuarioBean = getSessionUser();

        lista = creditosDao.obtenerEstadoDeCuenta(usuarioBean.getCodigoCliente(), getSelectedObra(), "", "");


      
        
        if(lista.size()>0){
        mensajeEstadoDeCuenta="";
        setTipoMoneda(lista.get(0).getTipoMoneda());
        calcularTotales();
        }else{
        inicializarTotales();
        mensajeEstadoDeCuenta=FacesUtils.getMessageResourceString("msg.reporteEstadoDeCuenta.sinRegistros");
        }



        return true;
    }

    /**
     * @return the lista
     */
    public List<EstadoCuentaBean> getLista() {
        return lista;
    }

    /**
     * @param lista the lista to set
     */
    public void setLista(List<EstadoCuentaBean> lista) {
        this.lista = lista;
    }

    /**
     * @return the totalImporteOriginalSoles
     */
    public Double getTotalImporteOriginalSoles() {
        return totalImporteOriginalSoles;
    }

    /**
     * @param totalImporteOriginalSoles the totalImporteOriginalSoles to set
     */
    public void setTotalImporteOriginalSoles(Double totalImporteOriginalSoles) {
        this.totalImporteOriginalSoles = totalImporteOriginalSoles;
    }

    /**
     * @return the totalImporteOriginalDolares
     */
    public Double getTotalImporteOriginalDolares() {
        return totalImporteOriginalDolares;
    }

    /**
     * @param totalImporteOriginalDolares the totalImporteOriginalDolares to set
     */
    public void setTotalImporteOriginalDolares(Double totalImporteOriginalDolares) {
        this.totalImporteOriginalDolares = totalImporteOriginalDolares;
    }

    /**
     * @return the totalDeudaPendienteSoles
     */
    public Double getTotalDeudaPendienteSoles() {
        return totalDeudaPendienteSoles;
    }

    /**
     * @param totalDeudaPendienteSoles the totalDeudaPendienteSoles to set
     */
    public void setTotalDeudaPendienteSoles(Double totalDeudaPendienteSoles) {
        this.totalDeudaPendienteSoles = totalDeudaPendienteSoles;
    }

    /**
     * @return the totalDeudaPendienteDolares
     */
    public Double getTotalDeudaPendienteDolares() {
        return totalDeudaPendienteDolares;
    }

    /**
     * @param totalDeudaPendienteDolares the totalDeudaPendienteDolares to set
     */
    public void setTotalDeudaPendienteDolares(Double totalDeudaPendienteDolares) {
        this.totalDeudaPendienteDolares = totalDeudaPendienteDolares;
    }

    /**
     * @return the totalDeudaVencidaSoles
     */
    public Double getTotalDeudaVencidaSoles() {
        return totalDeudaVencidaSoles;
    }

    /**
     * @param totalDeudaVencidaSoles the totalDeudaVencidaSoles to set
     */
    public void setTotalDeudaVencidaSoles(Double totalDeudaVencidaSoles) {
        this.totalDeudaVencidaSoles = totalDeudaVencidaSoles;
    }

    /**
     * @return the totalDeudaVencidaDolares
     */
    public Double getTotalDeudaVencidaDolares() {
        return totalDeudaVencidaDolares;
    }

    /**
     * @param totalDeudaVencidaDolares the totalDeudaVencidaDolares to set
     */
    public void setTotalDeudaVencidaDolares(Double totalDeudaVencidaDolares) {
        this.totalDeudaVencidaDolares = totalDeudaVencidaDolares;
    }

    private void calcularTotales() {
        inicializarTotales();
       for(EstadoCuentaBean  estado:lista){
        totalImporteOriginalSoles += estado.getImporteOriginalSoles();
        totalImporteOriginalDolares += estado.getImporteOriginalDolares();
        totalDeudaPendienteSoles += estado.getDeudaPendienteSoles(); 
        totalDeudaPendienteDolares += estado.getDeudaPendienteDolares(); 
        totalDeudaVencidaSoles  += estado.getDeudaVencidaSoles();
        totalDeudaVencidaDolares += estado.getDeudaVencidaDolares();
           
       
       
       }
    }

    /**
     * @return the tipoMoneda
     */
    public String getTipoMoneda() {
        return tipoMoneda;
    }

    /**
     * @param tipoMoneda the tipoMoneda to set
     */
    public void setTipoMoneda(String tipoMoneda) {
        this.tipoMoneda = tipoMoneda;
    }

    /**
     * @return the mensajeEstadoDeCuenta
     */
    public String getMensajeEstadoDeCuenta() {
        return mensajeEstadoDeCuenta;
    }

    /**
     * @param mensajeEstadoDeCuenta the mensajeEstadoDeCuenta to set
     */
    public void setMensajeEstadoDeCuenta(String mensajeEstadoDeCuenta) {
        this.mensajeEstadoDeCuenta = mensajeEstadoDeCuenta;
    }
    
    public void inicializarTotales(){
         totalImporteOriginalSoles = 0.0;
        totalImporteOriginalDolares = 0.0;
        totalDeudaPendienteSoles = 0.0;
        totalDeudaPendienteDolares = 0.0;
        totalDeudaVencidaSoles = 0.0;
        totalDeudaVencidaDolares = 0.0;
    }
}
